<?php
pc_base::load_app_class('hchbase','hchindex',0);
class upload extends hchbase {
	
	function __construct() {
		parent::__construct();
	}
	
	public function img(){
		$action = $_GET['act'];
		if($action=='delimg'){ //删除图片
			$filename = $_POST['imagename'];
			if(!empty($filename)){
				unlink('/uploadfilefiles/'.$filename);
				echo '1';
			}else{
				echo '删除失败.';
			}
		}else{ //上传图片
			$picname = $_FILES['mypic']['name'];
			$picsize = $_FILES['mypic']['size'];
			if ($picname != "") {
				if ($picsize > 2048000) { //限制上传大小
					echo '图片大小不能超过2m';
					exit;
				}
				$type = strstr($picname, '.'); //限制上传格式
				if ($type != ".gif" && $type != ".jpg" &&  $type != ".png") {
					echo '图片格式不对！';
					exit;
				}
				$rand = rand(100, 999);
				$pics = date("YmdHis") . $rand . $type; //命名图片名称
				//上传路径
				$fileurl = str_replace(array(pc_base::load_config('system','upload_url'),'/'), array(pc_base::load_config('system','upload_path'),DIRECTORY_SEPARATOR), $fileurl);
				$pic_path = pc_base::load_config('system','upload_path') . $pics;
				move_uploaded_file($_FILES['mypic']['tmp_name'], $pic_path);
			}
			$size = round($picsize/1024,2); //转换成kb
			$arr = array(
					'name'=>$picname,
					'pic'=>$pics,
					'size'=>$size
			);
			echo json_encode($arr); //输出json数据
		}
	}
	
	public function uploadimg(){
		$uptypes=array(
				'image/jpg',
				'image/jpeg',
				'image/png',
				'image/pjpeg',
				'image/gif',
				'image/bmp',
				'image/x-png'
		);
		
		$max_file_size=2000000;     //上传文件大小限制, 单位BYTE
		$destination_folder="/uploadimg/"; //上传文件路径
		$watermark=1;      //是否附加水印(1为加水印,其他为不加水印);
		$watertype=1;      //水印类型(1为文字,2为图片)
		$waterposition=1;     //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);
		$waterstring="华创";  //水印字符串
		$waterimg="xplore.gif";    //水印图片
		$imgpreview=1;      //是否生成预览图(1为生成,其他为不生成);
		$imgpreviewsize=1/2;    //缩略图比例
		$overwrite = false;
		$res = array();
		$res['err'] = 99;
		$res['msg'] = "未知错误";
		if ($_SERVER['REQUEST_METHOD'] == 'POST')
		{
			if (!is_uploaded_file($_FILES["upfile"][tmp_name]))
				//是否存在文件
			{
				$res['err'] = 1;
				$res['msg'] = "图片不存在!";
				return json_encode($res);
			}
		
			$file = $_FILES["upfile"];
			if($max_file_size < $file["size"])
				//检查文件大小
			{
				$res['err'] = 2;
				$res['msg'] = "文件太大!";
				return json_encode($res);
			}
		
			if(!in_array($file["type"], $uptypes))
				//检查文件类型
			{
				$res['err'] = 3;
				$res['msg'] = "文件类型不符!".$file["type"];
				return json_encode($res);
			}
		
			if(!file_exists($destination_folder))
			{
				mkdir($destination_folder);
			}
		
			$filename=$file["tmp_name"];
			$image_size = getimagesize($filename);
			$pinfo=pathinfo($file["name"]);
			$ftype=$pinfo['extension'];
			$destination = $destination_folder.time().".".$ftype;
			if (file_exists($destination) && $overwrite != true)
			{
				$res['err'] = 4;
				$res['msg'] = "同名文件已经存在了";
				return json_encode($res);
			}
		
			if(!move_uploaded_file ($filename, $destination))
			{
				$res['err'] = 5;
				$res['msg'] = "移动文件出错";
				return json_encode($res);
			}
		
			$pinfo=pathinfo($destination);
			$fname=$pinfo[basename];
		
			if($watermark==1)
			{
				$iinfo=getimagesize($destination,$iinfo);
				$nimage=imagecreatetruecolor($image_size[0],$image_size[1]);
				$white=imagecolorallocate($nimage,255,255,255);
				$black=imagecolorallocate($nimage,0,0,0);
				$red=imagecolorallocate($nimage,255,0,0);
				imagefill($nimage,0,0,$white);
				switch ($iinfo[2])
				{
					case 1:
						$simage =imagecreatefromgif($destination);
						break;
					case 2:
						$simage =imagecreatefromjpeg($destination);
						break;
					case 3:
						$simage =imagecreatefrompng($destination);
						break;
					case 6:
						$simage =imagecreatefromwbmp($destination);
						break;
					default:
						$res['err'] = 6;
						$res['msg'] = "不支持的文件类型!";
						return json_encode($res);
				}
		
				imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);
				imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white);
		
				switch($watertype)
				{
					case 1:   //加水印字符串
						imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);
						break;
					case 2:   //加水印图片
						$simage1 =imagecreatefromgif("xplore.gif");
						imagecopy($nimage,$simage1,0,0,0,0,85,15);
						imagedestroy($simage1);
						break;
				}
		
				switch ($iinfo[2])
				{
					case 1:
						//imagegif($nimage, $destination);
						imagejpeg($nimage, $destination);
						break;
					case 2:
						imagejpeg($nimage, $destination);
						break;
					case 3:
						imagepng($nimage, $destination);
						break;
					case 6:
						imagewbmp($nimage, $destination);
						//imagejpeg($nimage, $destination);
						break;
				}
		
				//覆盖原上传文件
				imagedestroy($nimage);
				imagedestroy($simage);
			}
			
			$res['err'] = 0;
			$res['msg'] = '上传成功';
			$res['url'] = $destination;
			return json_encode($res);
		}
	}
}
?>